// 获取当前日期，用于初始化picker的默认值
function getCurrentDate() {
  const date = new Date();
  return [date.getFullYear(), date.getMonth() + 1, date.getDate()];
}

Page({
  data: {
    categories: [
      { id: 1, name: '餐饮' },
      { id: 2, name: '交通' },
      { id: 3, name: '服饰' },
      { id: 4, name: '购物' },
      { id: 5, name: '服务' },
      { id: 6, name: '教育' },
      { id: 7, name: '娱乐' },
      { id: 8, name: '运动' },
      { id: 9, name: '生活缴费' },
      { id: 10, name: '旅行' },
      { id: 11, name: '宠物' },
      { id: 12, name: '医疗' },
      { id: 13, name: '保险' },
      { id: 14, name: '公益' },
      { id: 15, name: '发红包' },
      { id: 16, name: '转账' },
      { id: 17, name: '亲属卡' },
      { id: 18, name: '其他' },
      { id: 19, name: '退还' }
      // ...其他类别数据...
    ],
    selectedCategory: '请选择',
    categoryIndex: 0,
    multiDateOptions: [
      // 动态生成年份选项，将这些数组合并在一起，就形成了完整的日期选择器选项数组。当用户在日期选择器中选择一个日期时，bindDateChange 函数会被调用，并且通过 e.detail.value 可以获取用户选择的日期数组。
      Array.from({ length: 2100 }, (_, i) => i + 2024), // 年份
      Array.from({ length: 12 }, (_, i) => i + 1), // 月份
      Array.from({ length: 31 }, (_, i) => i + 1), // 日期
    ],
    selectedDate: ''// 初始化为当前日期
  },
  // 日期选择器值变更事件处理函数
  bindDateChange: function(e) {
    const value = e.detail.value;
    this.setData({
      selectedDate: value
    });
  },
  bindPickerChange: function(e) {
    const index = e.detail.value;
    const selectedCategory = this.data.categories[index].name;
    this.setData({
      selectedCategory: selectedCategory,
      categoryIndex: index
    });
  },
  handleSubmit: function(e) {
    const formData = e.detail.value;
    // 验证数据有效性
    if (!formData.recordDate || !formData.amount || !formData.description || !this.data.selectedCategory) {
      wx.showToast({
        title: '请填写所有信息',
        icon: 'none'
      });
      return;
    }

    // 将日期选择器的值转换为日期字符串
    const year = this.data.multiDateOptions[0][formData.recordDate[0]];
    const month = this.data.multiDateOptions[1][formData.recordDate[1]];
    const day = this.data.multiDateOptions[2][formData.recordDate[2]];
    formData.recordDate = `${year}-${month}-${day}`;

    // 添加类别信息到表单数据中
    formData.category = this.data.selectedCategory;

    // 打印表单数据
    console.log('记账信息：', formData);

    // 提示用户记账成功
    wx.showToast({
      title: '记账成功',
      icon: 'success'
    });

    // 在这里可以添加逻辑，如保存到本地或发送到服务器
  }
});
